﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using LogicaDeNegocio;
using Entidades;

namespace ServidorWebAdmin
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {

        [WebMethod(Description = "Autentica usuarios del sistema. ")]
        public bool ValidarUsuario(int usuario, string password)
        {
            UsuarioBL usuarioBL = new UsuarioBL();
            return usuarioBL.ValidarUsuario(usuario, password);
        }

        [WebMethod(Description = "Trae todos los pedidos pendientes del sistema. ")]
        public List<Pedido> ListarPedidosPendientes()
        {
            PedidoBL pedidoBL = new PedidoBL();
            return pedidoBL.ObtenerPedidosPendientes();
        }

        [WebMethod(Description = "Asigna el pedido a un tecnico determinado. ")]
        public void AsignarPedido(int idPedido, int nroEmp)
        {
            PedidoBL pedidoBL = new PedidoBL();
            pedidoBL.AsignarPedido(idPedido, nroEmp);
        }

        [WebMethod(Description = "Muestra todos los pedidos(independientemente del estado de éste) de un tecnico detrminado. ")]
        public List<Pedido> ListarPedidosPorTecnico(int nroEmp)
        {
            PedidoBL pedidoBL = new PedidoBL();
            return pedidoBL.ObtenerPedidosPorTecnico(nroEmp);
        }

        [WebMethod(Description = "Lista todos los técnicos existentes. ")]
        public List<Tecnico> ListarTecnicos()
        {
            TecnicoBL tecnicoBL = new TecnicoBL();
            return tecnicoBL.ObtenerTecnicos();
        }

        [WebMethod(Description = "Muestra todos los tecnicos en forma descendente de menos a mas ocupados. ")]
        public List<TecnicoBL.Datos> ListarTecnicosMenosOcupados()
            
        {
            //this.Context.User.Identity; "Verifica si esta autenticando correctamente.
            TecnicoBL tecnicoBL = new TecnicoBL();
            return tecnicoBL.ObtenerTecnicosMenosOcupados();
        }
    }
}
